package main

import (
	"context"
	"fmt"
	"project1/day06/pb"
	"strconv"

	"github.com/hashicorp/consul/api"
	"google.golang.org/grpc"
)

func main() {
	//1.初始化consul配置
	consulConfig := api.DefaultConfig()
	//2.创建consul对象------------（可以重新指定ip+port，也可以使用默认）
	consulClient, err := api.NewClient(consulConfig)
	//服务发现，从consul上，获取健康的服务
	service, _, err := consulClient.Health().Service("grpc and COnsul", "grpc", true, nil)

	target := service[0].Service.Address + ":" + strconv.Itoa(service[0].Service.Port)
	///////////////////////////////以下为grpc的远程调用//////////////////////////////////////
	//1.连接服务,使用服务发现consul上的ip/port来于服务建立连接
	grpcconn, _ := grpc.Dial(target, grpc.WithInsecure())
	//2.初始化grpc客户端
	grpcClient := pb.NewHelloClient(grpcconn)

	var person pb.Person
	person.Name = "andy"
	person.Age = 18
	//3.调用远程函数
	p, err := grpcClient.SayHello(context.TODO(), &person)
	fmt.Println(p, err)

}
